<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
    Author : Gisca
    Controller dari Mengelola Data Pengguna
*/
include 'page/abstractPage.php';

class ServerMengelolaDataPengguna extends AbstractPage {

    private $action='';
    private $message='';
    private $tabelPengguna='';
    private $tabelDataPengguna='';
    private $userid='';
    private $usernameEdit='';
    private $nameEdit='';
    private $passwordEdit='';
    private $emailEdit='';
    private $genderEdit='';
    private $addressEdit='';
    private $telpEdit='';

    public function ServerMengelolaDataPengguna()
    {
        parent::__construct();
        $this->load->model('Pengguna');

        //membuat template tabel
        $tmpl = array (
                    'table_open'          => '<table border="1" cellpadding="4" cellspacing="0" class="table1">',

                    'heading_row_start'   => '<tr>',
                    'heading_row_end'     => '</tr>',
                    'heading_cell_start'  => '<th>',
                    'heading_cell_end'    => '</th>',

                    'row_start'           => '<tr>',
                    'row_end'             => '</tr>',
                    'cell_start'          => '<td>',
                    'cell_end'            => '</td>',

                    'row_alt_start'       => '<tr>',
                    'row_alt_end'         => '</tr>',
                    'cell_alt_start'      => '<td>',
                    'cell_alt_end'        => '</td>',

                    'table_close'         => '</table>'
              );
        $this->table->set_template($tmpl);
    }

    public function DaftarPengguna()
    {
        $this->action='';
     
        //Build data pengguna
        $hasil=$this->Pengguna->getAllPengguna();

        $this->table->set_heading('Username','Fullname','Edit','Hapus');

        foreach ($hasil as $row)
        {
            $this->table->add_row($row->userID,$row->name, anchor('ServerMengelolaDataPengguna/editPengguna/'.$row->userID,'Edit'),('<a onclick="PopUpHapus(\''.$row->userID.'\')">Hapus</a>'));
        }

        $this->tabelPengguna=$this->table->generate();

        $this->index();
    }
    
    public function tambahPengguna()
    {
        $this->action="tambahPengguna";
        $this->index();
    }

    public function simpanTambahPengguna()
    {
        $this->load->model('Pengguna','pengguna');
        $this->pengguna->tambahPengguna($_POST['username'],$_POST['namePengguna'],$_POST['passwordPengguna'],$_POST['email'],$_POST['gender'],$_POST['address'],$_POST['telp']);
        $this->message='Penambahan Data Pengguna Sukses';
        $this->DaftarPengguna();
    }

    public function editPengguna($user_id)
    {
        $this->load->model('Pengguna','pengguna');
        $this->action="editPengguna";
        $this->usernameEdit = $user_id;
        //query
        $pengguna = $this->Pengguna->getDataPengguna($user_id);
        $this->nameEdit = $pengguna->name;
        $this->passwordEdit = $pengguna->password;
        $this->emailEdit = $pengguna->email;
        $this->genderEdit = $pengguna->gender;
        $this->addressEdit = $pengguna->address;
        $this->telpEdit = $pengguna->telephone;
        $this->index();
    }

    public function simpanEditPengguna()
    {
        $this->load->model('Pengguna','pengguna');
        $this->pengguna->updatePengguna($_POST['user_id'],$_POST['name'],$_POST['password'],$_POST['email'],$_POST['gender'],$_POST['address'],$_POST['telp']);
        $this->message='Perubahan Data Pengguna Sukses';
        $this->DaftarPengguna();
    }

    public function simpanDeletePengguna()
    {
        $this->load->model('Pengguna','pengguna');
        $this->pengguna->deletePengguna($_POST['namaInput']);
        $this->message='Penghapusan Data Pengguna Sukses';
        $this->DaftarPengguna();
    }
    
    function _buildContent()
    {
        if ($this->action=='')
        {
            $data = array (
                'linkTambahPengguna' => anchor("ServerMengelolaDataPengguna/tambahPengguna","Tambah Pengguna"),
                'tabelPengguna' => $this->tabelPengguna,
                'message' => $this->message
            );
            $this->load->view('MengelolaDataPengguna/DaftarPengguna',$data);
        }
        else if ($this->action=='tambahPengguna')
        {
            $data='';
            $this->load->view('MengelolaDataPengguna/tambahPengguna',$data);
        }
        else if ($this->action=='editPengguna')
        {
             $data = array (
                'usernameEdit' => $this->usernameEdit,
                'nameEdit' => $this->nameEdit,
                'passwordEdit' => $this->passwordEdit,
                'emailEdit' => $this->emailEdit,
                'genderEdit' => $this->genderEdit,
                'addressEdit'=> $this->addressEdit,
                'telpEdit' => $this->telpEdit
            );
            $this->load->view('MengelolaDataPengguna/editPengguna',$data);
        }      
    } 
}
